#pragma once

class CAnimationManager;
class CAnimation;
class CFrame;

#include <string>
using namespace std;

class CAnimationInfo
{

	int m_nCurrFrame;
	float m_fTimeWaited;
	string m_szCurrAnimation;

	// reference count
	unsigned int	m_unRefCount;

	CAnimation*		m_pAnimation;
	CFrame*			m_pFrame;

public:
	CAnimationInfo(void);
	~CAnimationInfo(void);	
	void SetTimeWaited( float _fTimeWaited ) { m_fTimeWaited = _fTimeWaited; }	
	float GetTimeWaited()	{ return m_fTimeWaited; }
	void SetCurrentFrame( float _fCurrentFrame ) { m_nCurrFrame = _fCurrentFrame; }
	int GetCurrentFrame() { return m_nCurrFrame; }
	void SetCurrentAnimation( string _szCurrAnimation ) { m_szCurrAnimation = _szCurrAnimation; }
	string GetCurrentAnimation() { return m_szCurrAnimation; }	
	void SetRefCount( unsigned int _unRefCount ) { m_unRefCount = _unRefCount; }
	CAnimation* GetAnimation( void ) { return m_pAnimation; }
	CFrame*	GetFrame( void ) { return m_pFrame; }
	void SetAnimation( CAnimation* pAnimation ) { m_pAnimation = pAnimation; }
	void SetFrame( CFrame* pFrame ) { m_pFrame = pFrame; }

	void AddRef( void );
	void Release( void );

	friend class CTower;
};

